/******************************************************************************
 * * setting_profile.h - data structure for setting profile sub-module
 *
 * *(C) Copyright 2019 Asr International Ltd.
 * * All Rights Reserved
 * ******************************************************************************/
#ifndef SETTING_PROFILE_H
#define SETTING_PROFILE_H

#ifdef __cplusplus
extern "C" {
#endif

enum
{
    SETTING_PROFILE_GENERAL = 0,
    SETTING_PROFILE_SILENT,
    SETTING_PROFILE_DISCREET,
    SETTING_PROFILE_LOUD,
    SETTING_PROFILE_MY_STYLE
};
typedef UINT8 SETTING_PROFILE_ID;

typedef struct
{
    // INT8                       ProfileName[NV_SETTING_MAX_PROFILE_NUM][NV_SETTING_MAX_PROFILE_NAME_LEN];
    Setting_Tone_Setting_Mng_t ProfileSetting[NV_SETTING_MAX_PROFILE_NUM];
    UINT8                      CurrentEditingIdx;                                   // to save current editing profile index
} Setting_Profile_Setting_Mng_t;

extern Setting_Profile_Setting_Mng_t *g_SettingProfileMng;                          // alloc when enter app // FFS20190419 why not static?
extern TIMER_ID                      g_SettingProfileSettingProfileTimer;           // for profile timed function, one time timer
extern UINT8                         g_SettingProfileActivateIdx;                   // to save current activate profile index
extern UINT8                         g_SettingProfileOperatingIdx;                  // to save current operating profile index

extern VOID Display_Setting_Timed_Profile_Timeout(VOID* Para);
extern VOID Display_Setting_Error_Profile(VOID);
extern VOID Setting_Profile_Write_Ring_Tone_To_Nv(UINT8 Index, MMI_MODEM_SIM_ID SimId, UINT8 nvData);
extern VOID Setting_Profile_Write_Ring_Volume_To_Nv(UINT8 Index, UINT8 nvData);
extern VOID Setting_Profile_Write_Keypad_Tone_Volume_To_Nv(UINT8 Index, UINT8 nvData);
extern VOID Setting_Profile_Write_Vibrating_To_Nv(UINT8 Index, UINT8 nvData);
extern VOID Setting_Profile_Write_Alert_Stat_To_Nv(UINT8 Index, MMI_MODEM_SIM_ID SimId, UINT8 nvData);
extern VOID Setting_Profile_Write_Message_Tone_To_Nv(UINT8 Index, MMI_MODEM_SIM_ID SimId, UINT8 nvData);
extern VOID Setting_Profile_Write_Warning_Tone_To_Nv(UINT8 Index, UINT8 nvData);
extern VOID Setting_Profile_Setting_Update(Setting_Tone_Setting_Mng_t *SettingTone);

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /*SETTING_PROFILE_H*/
